//import kotlinx.coroutines.Dispatchers
//import kotlinx.coroutines.ExperimentalCoroutinesApi
//import kotlinx.coroutines.IO
//import kotlinx.coroutines.delay
//import kotlinx.coroutines.launch
//import kotlinx.coroutines.runBlocking
//import kotlinx.coroutines.sync.Mutex
//import kotlinx.coroutines.sync.withLock
//
//@OptIn(ExperimentalCoroutinesApi::class)
//fun main() = runBlocking(Dispatchers.IO.limitedParallelism(100)) { // 多线程调度器（模拟并发）
//    var count = 0 // 可变变量（需保护，否则并发修改会出错）
//    val mutex = Mutex() // 互斥锁：保护 count 的并发访问
//
//    // 启动 10 个并发协程，每个协程累加 1000 次
//    repeat(50) { coroutineIndex ->
//        launch {
//            repeat(1000) {
//                // 关键：用 withLock 包裹「修改可变变量」的逻辑
//                mutex.withLock {
//                    count++ // 临界区：同一时间只有一个协程能执行
//                }
//            }
//            println("协程 $coroutineIndex 执行完成")
//        }
//    }
//
//    // 等待所有协程完成
//    delay(5000)
//    println("最终计数结果：$count") // 正确结果：10 * 1000 = 10000
//}